/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.losalpes.basket;

import com.losalpes.persistence.entity.Compra;
import javax.ejb.Local;

/**
 *
 * @author Henry.Quiroga
 */
@Local
public interface IBasketService {

    /**
     * Obtiene la compra actual
     * @return
     */
    public Compra getCompra();

    /**
     * Establece la compra actual
     * @param compra
     */
    public void setCompra(Compra compra);

    /**
     * Recalcula y devuelve el tota actual de la transaccion
     * @return entero
     */
    public int getTotal();

    /**
     *
     * multiplica cantidades y suma para obtener el total
     */
    public void recalcular();

    /**
     * Agrega un elemento a la canasta
     * @param id identificador del mueble
     */
    public void add(Long id);

    /**
     * Elimina un elemento de la canasta
     * @param id identificador del mueble
     */
    public void remove(Long id);

    /**
     * Recalcula el total y obtiene la lusta de elementos del carrito
     * @return Lista de elementos
     */
    public java.util.List getItems();

    /**
     * Elimina todos los elementos de la lista y recalcula la variable total
     */
    public void limpiarItems();

    /**
     * Comprueba si el usuario ya se encuentra en la fase de pago
     * @return booleano indicando si ya esta pagando
     */
    public boolean isPagando();

    /**
     * Establece el indicador de que el cliente ya esta pagando
     * @param pagando
     */
    public void setPagando(boolean pagando);

    /**
     * Crea el objeto compra y envia al usuario para que confirme su orden
     * @return
     */
    public java.lang.String buyProduct();

    /**
     * Actualiza el inventario y realiza la compra
     * @return un string de navegacion
     */
    public java.lang.String completarPago();

    /**
     * Actualiza el inventario y realiza la compra
     * @return un string de navegacion
     */
    public java.lang.String confirmarOrden(java.lang.String username);

    
}
